Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C#] Tworzenie obrazka z pixeli


Rekomendowane odpowiedzi

Opublikowano

Cześć.

 

Chciałbym utworzyć obrazek 192x108 i wypełnić go losowymi pixelami.

W autoit wygląda to mw. tak:

_GDIPlus_Startup()
$img = 'C:\Users\Henryk\Pictures\aha.gif'
$hImage = _ScreenCapture_Capture("", 0, 0, 192, 102)
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hImage)
For $x = 1 To 192
 For $y = 1 To 102
  $hex = random(0, 16777215, 1)
  DllCall($ghGDIPDll, "int", "GdipBitmapSetPixel", "hwnd", $hImage, "int", $x, "int", $y, "dword", $hex)
 Next
Next
_GDIPlus_ImageSaveToFile($hImage, $img)
_GDIPlus_Shutdown()

Jak by to trzeba było zrobić w C#? Dodam, że obrazek nie musi być zapisywany - wystarczy aby był ustawiany w gui

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

Jak dla mnie to w c++ z użyciem biblioteki allegro (ja używam wersji 4.2, 5 jest lepsza, ale jakoś tak wyszło. Zresztą tu i tak nie będzie miało to różnicy bo te operacje, które byłyby potrzebne są bardzo podstawowe i pewnie nie uległy znacznym zmianom...)byłoby najszybciej i najprościej, nawet przy nikłej znajomości języka. W dodatku nie wymagałoby .NETa i prawdopodobnie byłoby nieznacznie szybsze. Mógłbym Ci dać nawet kod na pokazanie jak by to wyglądało.

Opublikowano

Nie ma sprawy do tego tylko musi dojść prosta obsługa TCP

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

do TCP mógłbyś użyć QT. QAULIN się na nim zna więc jego możesz poprosić o pomoc.

A propo tego kodu z allegro 4.2 jak by Ci się przydał...

 

#include <allegro.h>
int main()
{
allegro_init();
const int width = 192;
const int height = 102;
BITMAP* bmp = bitmap_create(width, height); //lub load_bmp() z pliku
for(int x = 0; x<width;++x)
{
 for(int y = 0; y<height;++y)
 {
  int color = (x+(y*width))*100;
  _putpixel32(bmp, x, y, color);
 }
}
save_bmp(/*scieżka*/, bmp, NULL);
return 0;
}

Opublikowano

Dzięki wielkie !

Jeszcze tylko jak byś powiedział ile trwa wykonanie tego programu

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

po lekkiej poprawie:

#include <allegro.h>
int main()
{
allegro_init();
const int width = 192;
const int height = 102;
BITMAP* bmp = create_bitmap(width, height); //lub load_bmp() z pliku
for(int x = 0; x<width;x++)
{
 for(int y = 0; y<height; y++)
 {
  int color = (x+(y*width))*100;
  putpixel(bmp, x, y, color);
 }
}
return 0;
}
END_OF_MAIN();

działa fajnie. Cały program przechodzi w 70ms. Miałem jedynie problem z zapisem do pliku, którego jeszcze nie rozwiązałem, zapisywał całą czarną bitmape, ale przy sprawdzaniu na ekranie wszystko było kolorowe ;] (używałem save_bmp()).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...